“Dialog system” is a phrase generally used to refer to a computer-based system or machine that permits a human to interact with one or more information accessing applications. “Application” is a term generally used to refer to one or more computer programs which perform or provide a function.
It is known that “mixed-initiative” dialog systems typically allow user responses to affect the behavior of the dialog system with which the user interacts. That is, mixed-initiative typically refers to the capability to manage dialogs that are partially or totally driven by the user, e.g., the user takes initiative and answers or expresses requests that are not necessarily directly related to the question asked by the application. Such mixed-initiative dialog systems also typically allow navigation between portions of an application in a non-sequential manner. A goal of such systems is to achieve rapid completion of a conversation between the user and the machine.
It is also known that “natural language understanding” (NLU) relates to the ability to interpret the intent/meaning of a user's input (i.e., semantic meaning).
Applications employing such concepts offer the most natural and flexible user interfaces and, thus, are key in making human-machine interaction more widely deployed and accepted.
However, in accordance with existing approaches, such applications which attempt to employ mixed-initiative dialogs or natural language understanding are almost exclusively written using an “imperative” programming language such as C, C++, Java, script, or combinations thereof. As is known, an imperative programming language is a programming language that requires the generation of traditional programming logic.
Unfortunately, the use of an imperative programming language restricts the development of such dialog systems and applications to developers who are experts in the imperative programming language. The use of imperative programming in the development of applications also may require many months of development and support.
On the other hand, it is known that “declarative” programming does not necessarily require the generation of the same type of traditional programming logic that imperative programming requires. However, declarative authoring using a markup language, such as VoiceXML (Voice Extensible Markup Language) for speech-enabled applications, has been mainly limited to directed dialog systems. As opposed to mixed-initiative dialog systems, directed dialog systems are strictly machine-driven. That is, the user must answer the prompts provided by the machine in a sequential manner until all the information the application needs to perform an action is gathered. Thus, with directed dialog systems, users can not interact with the application naturally, since interaction is restricted to a question/answer type session.
Accordingly, there is a need for application authoring techniques, and information browsing mechanisms associated therewith, which employ declarative and other programming in association with mixed-initiative multi-modal interactions and natural language understanding for use in dialog systems.